package com.controller;
/*
* 专门用来处理用户业务逻辑的控制器
* */

import com.entity.Users;
import com.service.UsersService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;

@Controller
@RequestMapping("users")  //表示这里所有的动作都是处理用户业务逻辑请求的。
public class UsersController {

    @Resource
    private UsersService usersService;

    //跳转到用户登录页面
    @GetMapping("login")
    public String login(){
        return "login";
    }

    //跳转到用户注册页面
    @GetMapping("reg")
    public String reg(){
        return "reg";
    }

    //保存用户资料
    @PostMapping(value="save")
    @ResponseBody
    public Map<String,Object> add(@RequestBody Users user){
        Map<String,Object> result = new HashMap<String,Object>();
        System.out.println("执行用户注册或者添加新用户....");
        System.out.println("注册用户资料："+user);
        try{
            if(usersService.reg(user)){
                result.put("code", 200);
                result.put("msg", "注册成功！");
                return result;
            }
            result.put("code", 400);
            result.put("msg", "注册失败！");
            return result;
        }catch(Exception ex){
            ex.printStackTrace();
            result.put("code",400);
            result.put("msg","注册出现异常！");
            return result;
        }

    }

    //用户登录
    @RequestMapping("auth")
    @ResponseBody
    public Map<String,Object> auth(String username,String password){
        Map<String,Object> result = new HashMap<String,Object>();
        Users loginUser = null;
        try{
            loginUser= usersService.login(username,password);
            if(loginUser!=null) {
                result.put("code", 200);
                result.put("msg", "登录成功！");
                result.put("data",loginUser);
                return result;
            }
            result.put("code", 400);
            result.put("msg", "登录失败！");
            return result;
        }catch(Exception ex){
            ex.printStackTrace();
            result.put("code",400);
            result.put("msg","登录出现异常！");
            return result;
        }
    }
}
